package com.tbit.uqbike.client.dao.core;

import com.tbit.uqbike.client.pojo.CouponUser;
import com.tbit.uqbike.client.pojo.CouponUserDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author: chen
 * @Description: 用户绑定优惠券
 * @Date: 创建于 14:16 2020/1/4
 */
public interface CouponUserDao {
    /**
     * 通过用户id和区域id获取
     */
    List<CouponUserDto> getByUserId(Map<String, Object> map);

    /**
     * 通过用户id和区域id获取，按金额排序
     */
    List<CouponUserDto> getMoneyCoupon(Map<String, Object> map);

    /**
     * 添加
     */
    void insert(CouponUser couponUser);

    /**
     * 修改已使用
     */
    void edit(Integer couponuserId);

    /**
     * 通过主键获取
     */
    CouponUser getByCouponUserId(Integer couponuserId);

    /**
     * 获取金额最大的优惠券
     */
    CouponUserDto getById(Map<String, Object> map);

    /**
     * 通过时间排序
     */
    List<CouponUserDto> getByCouponType(Map<String, Object> map);

    /**
     * 批量添加
     */
    void addBatch(List<CouponUser> list);

    /**
     * 修改成已失效
     */
    void updateUse(Integer couponuserId);

    /**
     * 查询用户生效中的优惠券
     * @param userId
     * @return
     */
    Integer countValidCoupon(@Param("userId") Integer userId);
}
